/**
 * Created by Administrator on 2016/10/13.
 */
exports.book = {
  书名: 'JavaScript DOM 编程艺术（第2版）',
  扉页: [
    '图书在版编目 CIP 数据',
    '版权声明',
    '上一版译者序',
    '序',
    '前言',
    '致谢'
  ],
  目录: [
    {
      第1章: 'JavaScript 简史',
      1.1: 'JavaScript 的起源',
      1.2: 'DOM',
      1.3: '浏览器战争',
      '1.3.1': 'DHTML',
      '1.3.2': '浏览器之间的冲突',
      1.4: '制定标准',
      '1.4.1': '浏览器以外的考虑',
      '1.4.2': '浏览器战争的结局',
      '1.4.3': '崭新的起点',
      1.5: '小结'
    },
    {
      第2章: 'JavaScript 语法',
      2.1: '准备工作',
      2.2: '语法',
      '2.2.1': '语句',
      '2.2.2': '注释',
      '2.2.3': '变量',
      '2.2.4': ['数据类型', { 1: '字符串' }, { 2: '数值' }, { 3: '布尔值' }],
      '2.2.5': '数组',
      '2.2.6': '对象',
      2.3: '操作',
      2.4: '条件语句',
      '2.4.1': '比较操作符',
      '2.4.2': '逻辑操作符',
      2.5: '循环语句',
      '2.5.1': 'while 循环',
      '2.5.2': 'for 循环',
      2.6: '函数',
      2.7: '对象',
      '2.7.1': '内建对象',
      '2.7.2': '宿主对象',
      2.8: '小结'
    },
    {
      第3章: 'JavaScript DOM',
      3.1: '文档: DOM 中的 "D"',
      3.2: '对象: DOM 中的 "O"',
      3.3: '模型: DOM 中的 "M"',
      3.4: '节点',
      '3.4.1': '元素节点',
      '3.4.2': '文本节点',
      '3.4.3': '属性节点',
      '3.4.4': ['CSS', { 1: 'class 属性' }, { 2: 'id 属性' }],
      '3.4.5': [
        '获取元素',
        { 1: 'getElementById' },
        { 2: 'getElementsByTagName' },
        { 3: 'getElementsByClassName' }
      ],
      '3.4.6': '盘点知识点',
      3.5: '获取和设置属性',
      '3.5.1': 'getAttribute',
      '3.5.2': 'setAttribute',
      3.6: '小结'
    },
    {
      第4章: 'JavaScript 案例研究: JavaScript 图片库',
      4.1: '标记',
      4.2: 'JavaScript',
      '4.2.1': '非 DOM 解决方案',
      '4.2.2': '最终函数代码清单',
      4.3: '应用这个 JavaScript 函数',
      4.4: '对这个函数进行扩展',
      '4.4.1': 'childNodes 属性',
      '4.4.2': 'nodeType 属性',
      '4.4.3': '在标记里增加一段描述',
      '4.4.4': '用 JavaScript 改变这段描述',
      '4.4.5': 'nodeValue 属性',
      '4.4.6': 'firstChild 和 lastChild 属性',
      '4.4.7': '利用 nodeValue 属性刷新这段描述',
      4.5: '小结'
    },
    {
      第5章: '最佳实践',
      5.1: '过去的错误',
      '5.1.1': '不要怪罪 JavaScript',
      '5.1.2': 'Flash 的遭遇',
      '5.1.3': '质疑一切',
      5.2: '平稳退化',
      '5.2.1': 'javascript: 伪协议',
      '5.2.2': '内嵌的事件处理函数',
      '5.2.3': '谁关心这个',
      5.3: '向 CSS 学习',
      '5.3.1': '结构与样式的分离',
      '5.3.2': '激进增强',
      5.4: '分离 JavaScript',
      5.5: '向后兼容',
      '5.5.1': '对象检测',
      '5.5.2': '浏览器嗅探技术',
      5.6: '性能考虑',
      '5.6.1': '尽量小访问 DOM 和尽量减小标记',
      '5.6.2': '合并和放置脚本',
      '5.6.3': '压缩脚本',
      5.7: '小结'
    },
    {
      第6章: '案例研究: 图片库改进版',
      6.1: '快速回顾',
      6.2: '它支持平稳退化吗',
      6.3: '它的 JavaScript 与 HTML 标记是分离的吗',
      '6.3.1': [
        '添加事件处理函数',
        { 1: '检查点' },
        { 2: '变量名有什么' },
        { 3: '遍历' },
        { 4: '改变行为' }
      ],
      '6.3.2': '共享 onload 事件',
      6.4: '不要做太多假设',
      6.5: '优化',
      6.6: '键盘访问',
      6.7: '把 JavaScript 与 CSS 结合起来',
      6.8: 'DOM Core 和 HMTL-DOM',
      6.9: '小结'
    },
    {
      第7章: '动态创建标记',
      7.1: '一些传递方法',
      '7.1.1': 'document.write',
      '7.1.2': 'innerHTML 属性',
      7.2: 'DOM 方法',
      '7.2.1': 'createElement 方法',
      '7.2.2': 'appendChild 方法',
      '7.2.3': 'createTextNode 方法',
      '7.2.4': '一个更复杂的组合',
      7.3: '重回图片库',
      '7.3.1': '在已有元素前插入一个新元素',
      '7.3.2': [
        '在现有元素后插入一个新元素',
        { 1: '编写 insertAfter 函数' },
        { 2: '使用 insertAfter 函数' }
      ],
      7.4: 'Ajax',
      '7.4.1': 'XMLHttpResquest 对象',
      '7.4.2': '渐进式增强与 Ajax',
      '7.4.3': 'Hijax',
      7.5: '小结'
    },
    {
      第8章: '充实文档的内容',
      8.1: '不应该做什么',
      8.2: '把 "不可见" 变成 "可见"',
      8.3: '内容',
      '8.3.1': '选用 HTML、XHTML、还是 HTML5',
      '8.3.2': 'CSS',
      '8.3.3': 'JavaScript',
      8.4: '显示 "缩略语列表"',
      '8.4.1': '编写 displayAbbreviations 函数',
      '8.4.2': [
        '创建标记',
        { 1: '插入这个定义列表' },
        { 2: '检查兼容性' },
        { 3: '最终的标记' }
      ],
      '8.4.3': '一个浏览器 "地雷"',
      8.5: [
        '显示 "文献来源链接表"',
        { 1: '查找你的文档' },
        { 2: '创建链接' },
        { 3: '插入链接' },
        { 4: '改进脚本' },
        { 5: '最终的标记' }
      ],
      8.6: '显示 "快捷键清单"',
      8.7: '检索和添加信息',
      8.8: '小结'
    },
    {
      第9章: 'CSS-DOM',
      9.1: '三位一体的网页',
      '9.1.1': '结构层',
      '9.1.2': '表示层',
      '9.1.3': '行业层',
      '9.1.4': '分离',
      9.2: 'style 属性',
      '9.2.1': '获取样式',
      '9.2.2': '设置样式',
      9.3: '何时该用 DOM 脚本设置样式',
      '9.3.1': '根据元素在节点树里的位置来设置样式',
      '9.3.2': '根据某种条件反复设置某种样式',
      '9.3.3': '响应事件',
      9.4: 'className 属性',
      9.5: '小结'
    },
    {
      第10章: '用 JavaScript 实现动画效果',
      10.1: '动画基础知识',
      '10.1.1': '位置',
      '10.1.2': '时间',
      '10.1.3': '时间递增量',
      '10.1.4': [
        '抽象',
        { 1: '创建 moveElement 函数' },
        { 2: '使用 moveElement 函数' }
      ],
      10.2: '实用的动画',
      '10.2.1': '提出问题',
      '10.2.2': '解决问题',
      '10.2.3': 'CSS',
      '10.2.4': 'JavaScript',
      '10.2.5': '变量作用域问题',
      '10.2.6': '改进动画效果',
      '10.2.7': '添加安全检查',
      '10.2.8': '生成 HTML 标记',
      10.3: '小结'
    },
    {
      第11章: 'HTML5',
      11.1: 'HTML 简介',
      11.2: '来自朋友的忠告',
      11.3: '几个示例',
      '11.3.1': 'Canvas',
      '11.3.2': ['音频和视频', { 1: '也有混乱的时候' }, { 2: '自定义控件' }],
      '11.3.3': '表单',
      11.4: 'HTML5 还有其他特性吗',
      11.5: '小结'
    },
    {
      第12章: '综合示例',
      12.1: '项目简介',
      '12.1.1': '原始资料',
      '12.1.2': '站点结构',
      '12.1.3': '页面结构',
      12.2: '设计',
      12.3: 'CSS',
      '12.3.1': '颜色',
      '12.3.2': '布局',
      12.4: '标记',
      12.5: 'JavaScript',
      '12.5.1': '页面突出显示',
      '12.5.2': 'JavaScript 幻灯片',
      '12.5.3': '内部导航',
      '12.5.4': 'JavaScript 图片库',
      '12.5.5': '增强表格',
      '12.5.6': [
        '增强表单',
        { 1: '字段标签' },
        { 2: '占位符值' },
        { 3: '表单验证' },
        { 4: '提交表单' }
      ],
      '12.5.7': '压缩代码',
      12.6: '小结'
    }
  ],
  附录: [
    'JavaScript 库',
    {
      'A.1': '选择合适的库',
      'A.1.1': '有代表的库',
      'A.1.2': '内容分发网络'
    },
    { 'A.2': '语法' },
    {
      'A.3': '选择元素',
      'A.3.1': 'CSS 选择器',
      'A.3.2': '库所提供的专有选择器',
      'A.3.3': '使用回调函数筛选'
    },
    {
      'A.4': '操作 DOM 元素',
      'A.4.1': '生成内容',
      'A.4.2': '操作内容'
    },
    {
      'A.5': '处理事件',
      'A.5.1': '加载事件',
      'A.5.2': '其他事件'
    },
    {
      'A.6': 'Ajax',
      'A.6.1': 'Prototype 和 Ajax',
      'A.6.2': 'jQuery 与 Ajax'
    },
    {
      'A.7': '动画和效果',
      'A.7.1': '基于 CSS 属性的动画',
      'A.7.2': '组合动画',
      'A.7.3': '注意可访问性'
    },
    { 'A.8': '小结' }
  ]
};
